#include <head.h>
typedef struct
{
    long mtype;
    char name[200];
} msg_t;
#define MSGSIZE (sizeof(msg_t) - sizeof(long))
int main(int argc, const char *argv[])
{
    key_t key;
    int msqid;
    // 1.获取键值
    if ((key = ftok("/home", 'u')) == -1)
        PRINT_ERR("ftok error");

    // 2.创建消息队列
    if ((msqid = msgget(key, IPC_CREAT | 0666)) == -1)
        PRINT_ERR("msgget error");

    // 3.从消息队列中接消息
    int ret;
    long type;
    msg_t msg;

    printf("%s %s %d \n", __FILE__, __func__, __LINE__);

    // type = 2;   
    msg.mtype=2;
    strcpy(msg.name, "信息具体内容\n");
    msgsnd(msqid, &msg, MSGSIZE, 0);

    printf("%s %s %d \n", __FILE__, __func__, __LINE__);

    // printf("服务器发送消息进行回显\n");
    // msg.mtype = 2;
    // printf("服务器回显type=%ld,name=%s\n", msg.mtype, msg.name);
    // msgsnd(msqid, &msg, MSGSIZE, 0);
    // printf("%s %s %d \n", __FILE__, __func__, __LINE__);

    // // 4.消息队列的删除
    // if (msgctl(msqid, IPC_RMID, NULL))
    // {
    //     printf("%s %s %d \n", __FILE__, __func__, __LINE__);
    //     printf("消息队列调用 msgctl 删除成功 函数执行结束了\n");
    //     PRINT_ERR("msgctl error");
    // }

    return 0;
}